home *** CD-ROM | disk | FTP | other *** search
- #include <Files.h>
- #include <Devices.h>
- #include "CheckEjectability.h"
-
-
- ExtraDriveFlags* GetExtraDriveFlags(short drive)
- {
- ExtraDriveFlags* beforeQEntry = nil;
- DrvQElPtr qEntry;
-
- if (drive != 0) // it’s zero if already ejected so
- // we’re obviously not ejectable
- {
- for ( qEntry = ((DrvQElPtr) (GetDrvQHdr()->qHead));
- qEntry;
- qEntry = (DrvQElPtr) qEntry->qLink )
- if (drive == qEntry->dQDrive) // found our drive queue entry
- {
- beforeQEntry = ((ExtraDriveFlags*) qEntry) - 1;
- break;
- }
- }
-
- return beforeQEntry;
- }
-
- Boolean DriveIsEjectable(const short drive)
- {
- ExtraDriveFlags* flags = GetExtraDriveFlags(drive); // find drive queue entry
- return flags ? (flags->diskStatus & 0xF) != 0x8 : false; // ***this is slimy
- }
-